package open.panxiong.shared.http.config

import android.content.Context
import java.io.File

object ConstConfig {

    // 主要文件目录
    const val SHARE_FILE_DIRECTORY = "shared"
    const val TEMP_FILE_DIRECTORY = "_temp"

    // 下载接口前缀
    const val API_PREFIX_DOWNLOAD = "/api/download/"

    /**
     * 获取共享文件存储的文件夹路径
     */
    fun getSharedFileDirectory(context: Context): File {
        val file = File(
            context.cacheDir.absolutePath + File.separator + SHARE_FILE_DIRECTORY
        )
        if (!file.isDirectory) {
            file.mkdirs()
        }
        return file
    }

    /**
     * 获取临时文件文件夹（在共享文件夹下‘_temp’目录）
     */
    fun getTempFileDirectory(context: Context): File {
        val file = File(
            getSharedFileDirectory(context).absolutePath + File.separator + TEMP_FILE_DIRECTORY
        )
        if (!file.isDirectory) {
            file.mkdirs()
        }
        return file
    }

    /**
     * 获取共享目录全部文件
     */
    fun getShareFileList(context: Context, sortByTime: Boolean = true): Array<File> {
        val directory = getSharedFileDirectory(context)
        val files = directory.listFiles()?.filter { it.isFile }?.toTypedArray() ?: arrayOf()
        if (sortByTime) {
            files.sortBy { it.lastModified() }   // 按修改时间排序
        }
        return files
    }

    /**
     * 获取共享目录下的文件
     */
    fun getShareFileValue(context: Context, filename: String): File {
        return File(getSharedFileDirectory(context).absolutePath + File.separator + filename)
    }

    /**
     * 获取临时目录下的文件
     */
    fun getTempFileValue(context: Context, filename: String): File {
        return File(getTempFileDirectory(context).absolutePath + File.separator + filename)
    }

}